import type { RouteLocationNormalizedGeneric } from 'vue-router';

import { LOGIN_PATH } from '@vben/constants';
import { useAccessStore } from '@vben/stores';

export function processNotLogin(to: RouteLocationNormalizedGeneric) {
  // 在路由守卫之前添加一个自定义拦截器
  const accessStore = useAccessStore();
  // 如果用户未登录，且目标路由需要权限访问(不是ignoreAccess的路由)，则重定向到公共文件页面
  if (
    !accessStore.accessToken &&
    !to.meta.ignoreAccess &&
    to.path !== LOGIN_PATH
  ) {
    // 保存原始请求的URL，以便用户登录后可以重定向回来
    return {
      path: LOGIN_PATH,
      query: { redirect: encodeURIComponent(to.fullPath) },
      replace: true,
    };
  }
  return true;
}
